package com.collectionday03demo;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class SortPointDemo {
    public static void main(String[] args) {
        List<Point> list = new ArrayList<>();
        list.add(new Point(1515,2));
        list.add(new Point(15,256));
        list.add(new Point(1,20));
        list.add(new Point(45,45));
        list.add(new Point(162,452));
        list.add(new Point(55,85));

        //当调用api时需要改写修改其他类时  具有侵入性  侵入性越强越不利于后期的代码维护 应尽量避免
        Collections.sort(list, new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
                int len1 = o1.getX()* o1.getX()+ o1.getY()* o1.getY();
                int len2 = o2.getX()* o2.getX()+ o2.getY()* o2.getY();
                return len1 - len2;
            }
        });
        //lambda表达式
        Collections.sort(list,(o1,o2)->{
            int len1 = o1.getX()* o1.getX()+ o1.getY()* o1.getY();
            int len2 = o2.getX()* o2.getX()+ o2.getY()* o2.getY();
            return len1 - len2;
        });
        System.out.println(list);

        list.sort(new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
                return o1.getX()- o1.getX();
            }
        });
        System.out.println(list);


    }
}
